<?php

require_once($databaseControllerDir . '/session.php');

define('SID',session_id());
define('USER_TABLE','user');

class sessionmysql extends session {

  public function __construct() {
  }

  public function openDBConnection($server, $user, $password, $db_name) {
    $this->server   = $server;
    $this->user     = $user;
    $this->password = $password;

#echo "Подключаюсь к серверу: " .$this->server ." пользователь: " .$this->user . "Пароль: " .$this->password;
    $this->connection_id = mysql_connect($this->server, $this->user, $this->password);
    if (!$this->connection_id) {
        header('Refresh: 3');
        die("Ошибка подключения к серверу MySQL" . "ERROR ".mysql_errno()." ".mysql_error()."\n");
    }
    echo "Connection ID: " . $this->connection_id ." <<<<<------";
    // Соединились, теперь выбираем базу данных:
    return mysql_select_db($db_name, $this->connection_id);
  }


  public function closeDBConnection() {
    if($this->connection_id != 0) {
      mysql_close($this->connection_id);
    }
  }


/*
 * Функция проверки залогинился пользователь или нет.
 * При входе, ID сессии записывается в БД.
 * Если ID текущей сессии и SID из БД не совпадают, возвращается false.
 * Благородя этому нельзя одновременно работать под одним ником с разных браузеров.
 */
  function check_user($uid) {
    $result = mysql_query("SELECT `sid` FROM `".USER_TABLE."` WHERE `uid`=$uid.;") or die(mysql_error());
    $sid = mysql_result($result,0);
    return $sid==SID ? true : false;
  }

/* Функция входа.
 * Все выбраные поля записываются в сессию.
 * Таким образом, при каждом просмотре страницы не надо выбирать их заново.
 * Для обновления информации из БД можно пользоваться этой же функцией - имя и пароль хранятся в сессиях
 */
  function login($username, $password)    {
    $result = mysql_query("SELECT * FROM `".USER_TABLE."` WHERE `uid`='$username' AND `pswd`='$password';")
                            or die(mysql_error());
    $USER = mysql_fetch_array($result,1);        //Генерирует удобный массив из результата запроса
    if(!empty($USER)) {                          //Если массив не пустой (это значит, что пара имя/пароль верная)
      $_SESSION = array_merge($_SESSION, $USER); //Добавляем массив с пользователем к массиву сессии
      mysql_query("UPDATE `".USER_TABLE."` SET `sid`='".SID."' WHERE `uid`='".$USER['uid']."';")
        or die(mysql_error());
      return true;
    }
    else {
      return false;
    }
  }

}


?>